home *** CD-ROM | disk | FTP | other *** search
/ Best Tools for JAVA / Best Tools for JAVA.iso / CONVERTR / RTF2HTML / SRC / RTF2HTML.TAR / rtftohtml_src / Libs / ReleaseNotes / Changes-1.10 < prev    next >
Encoding:
Text File  |  1994-11-05  |  6.4 KB  |  152 lines

  1. Changes for RTF distribution release 1.10
  2. -----------------------------------------
  3.  
  4. Most of the differences between this release and release 1.09 relate to
  5. two major changes.
  6.  
  7. - The translators included in the distribution use an architecture that
  8. makes the writer end of the translators less system-dependent.  This doesn't
  9. change the behavior of the translators much for the UNIX versions, but the
  10. Macintosh versions now have a real Macintosh interface (support for drag 'n'
  11. drop, menus, translation progress window, etc.).
  12.  
  13. - Word 6.0 introduced about a zillion new RTF control words (documented
  14. in RTF specification version 1.2).  Some of these made the release 1.09
  15. reader blow up, particularly during font table and stylesheet parsing.
  16. The new controls are now known to the reader.
  17.  
  18. The new symbols are marked as follows in rtf.h:
  19.  
  20.     /* new in 1.10 */
  21.  
  22. You can use these markings to see where an RTF translator might need to
  23. be upgraded.
  24.  
  25.  
  26. The font table reader now deals more intelligently with Word 6.0 \fonttbl
  27. structures.  That is, it tries not to panic immediately when it sees \fcharset
  28. or that a font name doesn't occur at the end of a font entry.  It parses all
  29. the W6.0 font tables that I've seen.  That means it doesn't choke, not
  30. necessarily that it collects all the information in the table.  For instance,
  31. the alternate font name is simply skipped if it's present.
  32.  
  33. RTFFont structure now has character set, pitch, code page, type and alternate
  34. font name members.  The reader doesn't use any of these.  Writer code might,
  35. but beware that the values may not make sense yet.  I'm uncertain what good
  36. default values are for some of these.  Also, you must check whether or not
  37. the alternate font name is nil.  The reader currently skips the name, but
  38. even for the day when it doesn't, there's no guarantee an alternate name will
  39. be present.  So don't use the pointer blindly, assuming it points somewhere
  40. sensible.
  41.  
  42. RTFStyle structure now has members identifying style type (paragraph,
  43. character, section) and whether or not the style's additive.
  44.  
  45. 8-bit characters are no longer converted to \'xx form and flagged with a
  46. warning message, because the RTF specification now allows them.
  47.  
  48. The internal function Error() is now available publicly as RTFPanic().
  49. Another function RTFMsg() allows for diagnostic output but doesn't cause
  50. process termination.  Both functions take printf()-style arguments.
  51.  
  52.  
  53. Changes that introduce incompatibilities with release 1.09
  54. ----------------------------------------------------------
  55.  
  56. -    Some symbols were renamed or reclassified.  These are marked as
  57.     follows in rtf.h:
  58.  
  59.     /* renamed in 1.10 */
  60.     /* reclassified in 1.10 */
  61.  
  62.     If you've written a translator that uses a symbol that has been
  63.     renamed, you'll get an "undefined symbol" error when you recompile
  64.     with the new distribution. Consult the list below to see what you
  65.     need to change.  If your translator uses symbols that have been
  66.     reclassified, you should modify it according to the new
  67.     classification. If you interpret these symbols in a switch
  68.     statement, you'll likely get "duplicate case" errors unless you
  69.     move the code that interprets them to the proper switch statement.
  70.  
  71. -    \cs (character style) is now classified in the rtfCharAttr class
  72.     rather than in the rtfParAttr class.  \ds (section style) is now
  73.     classified in the rtfSectAttr class rather than in the rtfParAttr
  74.     class.
  75.  
  76. -    Renamed rtfPageNumLeft to rtfPageNumRight -- I misread the spec for
  77.     the symbol \pgnx; it says the parameter represents the twips from
  78.     the *right* margin, not the left margin.
  79.  
  80. -    Renamed rtfTextDistX to rtfDistFromTextAll.
  81.  
  82. -    Renamed rtfDUnderline to rtfDotUnderline, and rtfWUnderline to
  83.     rtfWordUnderline, which makes more sense.  I guess I wasn't sure
  84.     what \uld and \ulw meant before, or something.
  85.  
  86. -    Reclassified rtfAnnotation (\annotation) and rtfAnnotID (\atnid) as
  87.     destinations in rtf.h, rather than as special characters.  (The
  88.     reader was returning rtfDestination correctly as the token major
  89.     number, but the minor number wasn't correct.)
  90.  
  91. -    Reclassified rtfNextFile (\nextfile) and rtfTemplate (\template) as
  92.     destinations, rather than as document attributes.
  93.  
  94. -    Removed rtfCurAnnot, which apparently was not being used.
  95.  
  96. -    rtfIndexBold (\bxe) and rtfIndexItalic (\ixe) were reclassified as
  97.     index attributes, rather than as destinations.
  98.  
  99.  
  100. Other Changes
  101. -------------
  102.  
  103. rtf2troff:
  104. Several data structures are now allocated dynamically rather than statically,
  105. to reduce the data segment size when built on a Macintosh.  This allows it
  106. to be built with Far Data turned off.
  107.  
  108. - rtfPathSep is no more.  Anything that needs to know a path separator
  109. should be in an OS-specific file.
  110.  
  111. - Absorbed all reader library files into reader.c.
  112.  
  113. - rtfTextBuf in reader.c is now a char pointer rather than an array,
  114. and it's NULL until RTFInit() has been called the first time.  This is
  115. because it's dynamically allocated.  (Also true for internal buffer
  116. pushedTextBuf.)
  117.  
  118. - RTFGetLibPrefix() no longer exists, because one of the OS-specifics is
  119. expected to be a function that can open a library file.  The function is
  120. set by RTFSetOpenLibFileProc(), and it's called by RTFOpenLibFile().
  121.  
  122. - Created "lib-mac" folder for code used by Macintosh drivers.
  123.  
  124. - Created "lib-unix" folder for code used by UNIX drivers.
  125.  
  126. - lib/macintosh.c is no longer used.  Similar-function code is in the
  127. lib-mac directory.
  128.  
  129. - New functions RTF{Get,Set}{Input,Output}Name().  Wrappers can use the
  130. Set functions to set the input and output names.  Writers can use the
  131. Get functions to find out the names if they need them.  It's up to the
  132. wrapper and the writer to coordinate whether the names are necessary or
  133. not.  For most translators, the writer code doesn't need to know the
  134. names.
  135.  
  136. - Added new global variables rtfLineNum (a long) and rtfLinePos (an int)
  137. that hold the current input line and position within the line.  RTFPanic()
  138. prints those values when it generates an error message.  They might also
  139. be useful from within writer code.
  140.  
  141. - RTF specification 1.2 clarifies that 222 is the "no style" number and 0
  142. is the "normal style" number.  The reader now follows this convention.
  143. Formerly I was under the impression that 222 was "normal" and that references
  144. to style 0 were synonymous with that.  (See Changes-1.07).  The value
  145. of rtfNormalStyleNum is now 0 rather than 222 and rtfNoStyleNum is a new
  146. constant with value 222.
  147.  
  148. - Created "man" directory for manual pages.  Wrote rtf2troff.man.
  149.  
  150. - Wrote rtf2groff script, which just calls rtf2troff and adds -t groff
  151. to the arguments.
  152.